The ability to communicate quickly, easily and efficiently is critical to successful business operations. The telephone system continues to be a crucial element in enabling that communication. However, today's computer literate business users demand significantly more functionality from their communications systems than the early users did one hundred years ago. Not content with simply being able to place and receive calls easily, modern users are continually looking for more functionality. They want telephone systems that can conference, switch and pool calls, give them access to advanced features including call accounting, voice messaging, automatic call distribution and interface with their computer systems and networks.
This continual demand for more functionality places increasing demands on the equipment that supports the telecommunications systems. To keep pace with changing user requirements, key components such as Private Branch Exchange switches (PBXs) and the telephones themselves, are in constant need of redesign and upgrading. As most modern PBX systems are programmable digital systems, controlled by software, this pressure for new features translates into a continual need for programming changes. Alteration to complex software typically requires intensive and time consuming testing to ensure reasonably error free product deployment. This testing is often significantly more time consuming and expensive than the actual re-programming.
Adding new features also places unique demands on both the communications device itself and the users of the device. A typical communications device, such as the telephone, is designed to be a compact, easy to operate device. Having a multitude of dedicated buttons or keys that enable particular features or functionality can result in telephones that are cumbersome, intimidating and require significant effort to learn to use. Existing communications systems have predetermined physical maps between buttons and functions. There are significant cost and logistics disadvantages in having to change phone models, or the tag labels that map buttons to functions, to accommodate new functionality.
Modern communications and telephony equipment, particularly PBXs, are already built as software controlled switches using Object Oriented Programming (OOP) languages). OOP was intended to simulate the way humans interact with different types of objects, as described for instance in “The C++ Programming Language, Third Edition”, by Bjarne Stroustrup, Addison-Wesley, Reading, Mass., USA, 1997, ISBN #0-201-88954-4, the contents of which are hereby incorporated by reference. However, the new technology of OOP is typically used merely to provide more traditional functionality and does not take advantage of the possibilities offered by OOP. In particular, OOP techniques provide the ability to monitor the creation of software objects. When such objects are created they can be listed as inventory. Based on the inventory of all types of objects, different features can be made available. Moreover, such OOP provision of context sensitive functionality also allows the user to only see currently available options relevant to what they are actually doing.
There is a clearly a need for a communications control system and associated hardware that can change functionality without significant programming effort, and present the new functionality to end users in an intuitive manner that requires little learning, and avoids having to install new telephones or tag labels. In particular, there is a clear need to leverage the advantages of OOP to provide communications control system having context sensitive functionality.